setClass("VClusterAlg",
		representation(
				.description="character",
				"VIRTUAL"
		),
		prototype=prototype(
				.description="Virtual Clustering algorithm class"
		
		)
) 

#generic functions
setGeneric("clusterize",function(.Object,inputSet,...){standardGeneric("clusterize")})

#initialization method 
setMethod("initialize",
		signature="VClusterAlg",
		function(.Object,...){
			return(.Object)
		})

setMethod("get_description",
		signature="VClusterAlg",
		definition=function(.Object){
			.Object@.description
		})

setMethod("clusterize",
		signature="VClusterAlg",
		definition=function(.Object,inputSet,...){
			if(is.null(inputSet$X)){
				stop("input Set does not contain X element ")
			}
			if(! is.matrix(inputSet$X)){
				stop("input Set X element is not matrix ")
			}
			return(0)
		}
)